// es配置
const { Client } = require('elasticsearch')
const client = new Client({ node: 'http://localhost:9200' })

const Koa = require('koa');
// 路由配置
const route = require('koa-route');
const fs = require('fs')
// 允许静态资源被访问 直接在路径后面跟着资源名字即可
const static = require('koa-static')
const staticPath = '../static'
const path = require('path')
// 处理post请求
const koaBody = require('koa-body');
// 连接mongondb
const dbQuestions = require('./dbOprations/dbQuestions.js')
// AnimeIntro模板
const questionsModal = require('./dbOprations/questions.js')

const app = new Koa();

// mongoose AnimeIntro和charactersInfo和dbDetailPlots的Schema和modal创建
var Questions = new questionsModal(dbQuestions)

// 重定向
const redirect = ctx => {
  ctx.response.redirect('/');
};

// 题目插入获取接口
const questionsInsert = async ctx => {
  ctx.response.type = 'json';
  let rsl = await Questions.Insert(ctx.request.body.contents)
  ctx.response.body = JSON.stringify({isSuccess:rsl})
}

// 全文检索获取相关题目
const getQuestions = async ctx => {
  ctx.response.type = 'json';
  let rsl = await Questions.Insert(ctx.request.body.contents)
  ctx.response.body = JSON.stringify({isSuccess:rsl})

}

// 根据动漫名字获取角色信息
const charactersInfo = async ctx => {
  ctx.response.type = 'json';
  // 获取参数 动漫名字
  await Characters.CharactersFind(ctx.query.AnimeName).then((result) => {
    if (result == []) {
      ctx.response.body = JSON.stringify([])
    } else {
      ctx.response.body = JSON.stringify(result[0].characters)
    }
  })
}



// 根据动漫名字获取剧情信息
const detailPlots = async ctx => {
  ctx.response.type = 'json';
  // 获取参数 动漫名字
  await DetailPlots.DetailPlotsFind(ctx.query.AnimeName, { _id: 0 }).then((result) => {
    if (result == []) {
      ctx.response.body = JSON.stringify([])
    } else {
      ctx.response.body = JSON.stringify(result[0].detailPlot)
    }
  })
}

// 随机获取4条coser美图 咕嘿嘿
const cosersInfo = async ctx => {
  console.log('cosersInfo')
  ctx.response.type = 'json';
  // 如果priaseNumber存在则表示是点赞 否者是获取cosers数据的
  if (ctx.query.priaseNumber != undefined) {
    if (ctx.query.priaseNumber > 0) {
      CosersInfo.incPriaseNumber(ctx.query.id)
    } else {
      CosersInfo.decPriaseNumber(ctx.query.id)
    }
  } else {
    await CosersInfo.CoserInfoFind().then((result) => {
      ctx.response.body = JSON.stringify(result)
    })
  }
}

// 获取 删除评论
const commentsInfo = async ctx => {
  console.log('commentsInfo')
  ctx.response.type = 'json';
  // 1查询
  if (ctx.query.operation == 1) {
    await CommentsInfo.CommentsInfoFind(ctx.query.id).then((result) => {
      ctx.response.body = JSON.stringify(result)
    })
  } else if (ctx.query.operation == 2) {
    // 3 删除
    await CommentsInfo.delComments(ctx.query.id)
  } else ctx.response.body = '404'
}

//  添加评论
const commentsInfo2 = async ctx => {
  console.log('commentsInfo2')
  if (ctx.request.body.contents == undefined) {
    ctx.throw(400, '.name required');
  } else {
    if (ctx.request.body.toCommenterId == '-1') {
      await CommentsInfo.addComments(ctx.request.body)
      // coser中增加评论人数
      console.log('增加评论人数')
      await CosersInfo.addCommentNumber(ctx.request.body.id)
    } else {
      // 如果是追评则主要评论number+1
      await CommentsInfo.addCommentNumber(ctx.request.body.toCommenterId)
    }
  }
}

// 点赞系统 评论点赞 coser 、 番剧点赞
const priase = async ctx => {
  console.log('priase')
  if (ctx.query.priase == 'true') {
    if (ctx.query.priaseType == 1) {
      // coser点赞
      CosersInfo.incPriaseNumber(ctx.query.id, ctx.query.priaseId)
    } else if (ctx.query.priaseType == 2) {
      // 普通评论点
      CommentsInfo.priase(ctx.query.id, ctx.query.priaseId)
    } else if (ctx.query.priaseType == 3) {
      // 番剧点赞

    } else {
      await CommentsInfo.addComments(ctx.request.body)
    }
  } else {
    if (ctx.query.priaseType == 1) {
      // coser取消点赞
      CosersInfo.decPriaseNumber(ctx.query.id, ctx.query.priaseId)
    } else if (ctx.query.priaseType == 2) {
      // 普通评论取消点赞
      CommentsInfo.cancelPriase(ctx.query.id, ctx.query.priaseId)
    } else if (ctx.query.priaseType == 3) {
      // 番剧取消点赞

    } else {
      await CommentsInfo.addComments(ctx.request.body)
    }
  }
}

const main = ctx => {
  ctx.response.body = '呵呵'
};

// 使用中间件
// app.use(static(
//   path.join( __dirname,  staticPath)
// ))
// app.use(koaBody());
// app.use(route.get('/', main));
// app.use(route.get('/temp', redirect));
// app.use(route.get('/api/animeIntro', animeIntro));

// app.listen(80,()=>{
//   console.log('server start')
// });
